再來要介紹一下
自然語言處理(Natural Language Processing,NLP)。
那什麼是自然語言處理呢?
它是讓人工智慧去理解人類所書寫的文字和說話的內容包含的含意。
不過人與人之間就常常出現理解錯誤了,常常因為一些理解的不同造成誤會,有時候好氣又好笑。既然人都會出現這種錯誤了,我們又該如何區訓練人工智慧?
首先,一定要建立好的基礎,打好地基才行,因此我們人說話會有停頓,在念文章的時候會依照標點符號的地方來做換氣,一方面呼吸,另一方面也是讓自己能夠斷句,並了解剛剛所說的內容是要表達什麼。
舉個有趣的例子:「這個斑馬線很難過」,機器不像是人的思考,知道斑馬線是行人過馬路所踩的地方,那它有可能會以為是「斑馬線」在傷心。
AI亦是如此,我們要先教她如何斷句和了解詞的意思。自然語言處理要先將一段話切割成最小的可理解意思的單位,然後再對所有連接起來的詞做語法的分析,分析完成之後,才是最終的整個語意的分析。
訓練機器處理自然語言,我們需要準備詞彙彼此間的關係、語法和語義的表達方式,然後一樣經由大量的去分析文章裡的句子之後,給機器自己去整理歸納紀錄,讓它自己去學會。如此一來不會是很死板的給它所得到的模型是比較好的。
那當然會有很多詞是沒有學過的,亦或是隨著時代所新創造出來的詞,或是一些次文化所流行的詞,像是「怎麼這樣和怎麼醬」。那這樣機器就可以依照bottom-up merging algorithm (合併字詞演算法)去做整理。那舉一個例子:花蛤,透過演算法去分析一些文章或是新聞所歸納出來,若可以統計發現很常出現花然後它後面又常接蛤的時候,因為花或是蛤都不能代表花蛤所以就會把這兩個做一個斷詞。而句子的話會利用結構樹去找到兩個句子彼此間角色關係,就可以知道語義是否兩句相同。
舉例:
媽媽叫我早點睡覺/我被媽媽叫早點睡覺,這兩個意思其實是一樣的。
另外在深度學習出現之後,出現了「詞向量」。
參考資料:
https://research.sinica.edu.tw/nlp-natural-language-processing-chinese-knowledge-information/
https://meethub.bnext.com.tw/%E5%AE%8C%E6%95%B4%E8%A7%A3%E6%9E%90ai%E4%BA%BA%E5%B7%A5%E6%99%BA%E6%85%A7%EF%BC%9A3%E5%A4%A7%E6%B5%AA%E6%BD%AE%EF%BC%8B3%E5%A4%A7%E6%8A%80%E8%A1%93%EF%BC%8B3%E5%A4%A7%E6%87%89%E7%94%A8%EF%BD%9C/